package com.hxzy.shop.order.product;

import org.springframework.cloud.stream.annotation.Output;
import org.springframework.messaging.MessageChannel;

/**
 * @Author ht
 * @Date 2021/9/1 11:32
 * @Version 1.0
 */
public interface OrderSource {

    String ORDER_CHANGE_OUTPUT = "order-change-output";

    String ORDER_DONE_OUTPUT = "order-done-output";

    String CARE_PUSH_OUTPUT = "care-push-output";

    String ORDER_DRUG_OFFER_OUTPUT = "order-drug-offer-output";

    String DATAMANAGEMENT_AFTER_SALES_OUTPUT = "datamanage-after-sale-output";

    String MEMBER_LABEL_INNER_OUTPUT = "member_label_inner_output";

    String OMS_MESSAGE_SEND_OUTPUT = "oms-message-send-output";

    String OMS_REFUND_MESSAGE_SEND_OUTPUT = "oms-refund-message-send-output";

    String OMS_EXPRESS_MESSAGE_SEND_OUTPUT = "oms-express-message-send-output";

    String ERP_ORDER_PUSH_OUTPUT = "erp-order-push-output";


    /**
     * 订单支付完成更改事件
     * @return
     */
    @Output(ORDER_CHANGE_OUTPUT)
    MessageChannel orderChangeOutput();

    /**
     * 订单完成事件
     * @return
     */
    @Output(ORDER_DONE_OUTPUT)
    MessageChannel orderDoneOutput();

    /**
     * 专业关怀推送
     */
    @Output(CARE_PUSH_OUTPUT)
    MessageChannel carePushOutput();

    /**
     * 发送订单生成商品优惠明细
     * @return
     */
    @Output(ORDER_DRUG_OFFER_OUTPUT)
    MessageChannel orderDrugOfferOutput();

    /**
     * 当售后订单确认他退款后发送修改商户  该订单日期的消费记录
     */
    @Output(DATAMANAGEMENT_AFTER_SALES_OUTPUT)
    MessageChannel datamanageAfterSalesOutput();


    /**
     * 当售后订单确认他退款后发送修改商户  该订单日期的消费记录
     */
    @Output(MEMBER_LABEL_INNER_OUTPUT)
    MessageChannel memberLabelInnerOutput();

    /**
     * OMS订单消息推送
     */
    @Output(OMS_MESSAGE_SEND_OUTPUT)
    MessageChannel orderMessageSend();


    /**
     * OMS售后订单推送
     */
    @Output(OMS_REFUND_MESSAGE_SEND_OUTPUT)
    MessageChannel refundOrderSend();

    /**
     * OMS快递信息推送
     */
    @Output(OMS_EXPRESS_MESSAGE_SEND_OUTPUT)
    MessageChannel expressMessageSend();

    /**
     * ERP订单消息推送
     */
    @Output(ERP_ORDER_PUSH_OUTPUT)
    MessageChannel orderPush();


}
